package com.tedu.api.thread;

/**
 * 创建线程---第三种方案：匿名内部类【推荐：创建1次】
 * Lambda表达式--JDK1.8推出新版本：简化匿名内部类写法
 * Lambda表达式也叫函数式表遍历！功能：简化匿名内部类
 *                                简化集合遍历功能
 *                                简化功能方法
 *                                简化IO流功能
 * Lambda表达式语法：()->{},属于功能性接口！
 * ()代表
 * ->代表
 * {}代表
 * 需求：创建接口  Insert  插排  提供：电
 *      子实现类  Computer  电脑
 *     子类实现接口--完成对象创建【创建1次】
 *     匿名内部类方式完成对象创建
 *     Lambda表达式结构完成对象创建
 */
public class LambdaAPI {
    public static void main(String[] args) {
        //创建插排接口--必须使用子实现类
        //Insert cp=new Computer(); //多态：造型
        //cp.Dian();
        //子实现类--创建过一次对象--匿名内部类：支持接口以及抽象类创建
        /*Insert cp = new Insert() {
            public void Dian(long money,char ch) {
                System.out.println("电脑通电了");
            }
        };
        cp.Dian(100);*/

        //使用Lambda表达式    Insert cp=->
        Insert cp=(money,ch)->{return"电脑通电了";};
        cp.Dian(100,'2');
        /**Lambda表达式--匿名内部类【创建接口】
         * ()代表   方法中的参数，情况①：无参数，不可以删除
         *                        ②：有参数，有1个参数括号删除
         *                        ③：有参数，有2个参数以上，不可以删除
         * ->代表 new对象的过程
         * {} 代表 方法中内容，情况
         *       ①：看方法返回值 void 空 传入输出语句，删除花括号
         *       ②：看方法返回值  Java数据类型  return Java数据类型；
         *       【两种：八大数据基本类型  |引用类型】
         *           返回值  存在return  不可以删除花括号【推荐】
         *           2.1返回值  不存在return 可以删除花括号|【不推荐】
         *
         */
     }
}
//创建插排-->接口
interface Insert{
    public String Dian(long money,char ch);
}

//创建插排接口--必须使用子实现类
// Insert cp=new Computer();  //多态:造型
//cp.Dian();
//子实现类---创建一次对象---匿名内部类
     /*Insert cp=new Insert(){
         public String Dian(long money,char ch) {
             return "电脑被通电了~";
         }
     };
     cp.Dian(100,'2');*/

